package com.member.provider.controller;

import com.member.dto.FreePay;
import com.member.dto.PayType;
import com.member.provider.service.PayService;
import com.member.utils.Result;
import com.member.vo.FreeRefundReqVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * @auther liujian
 * @date 2023/12/26 15:23
 */
//交易管理
@RestController
@RequestMapping("/provider/pay")
@CrossOrigin
public class PayController {

    @Autowired
    private PayService payService;

    /**
     * @Description TODO
     * @param payType
     * @retuen Result
     * @date 2023/12/29 15:01
     * @auther 银狐先生
     */
    @PostMapping("/addPay")
    public Result addPay(PayType payType){
        Result result=payService.addPay(payType);
        return result;
    }

    /**
     * @Description TODO
     * @param freePay
     * @retuen
     * 免密支付
     * @date 2024/1/11 17:02
     * @auther 银狐先生
     */
    @PostMapping("/freePay")
    public Result freePay(FreePay freePay){
        Result result=payService.freePay(freePay);
        return result;
    }


    @GetMapping("/getPay")
    public Result getPay(){
        Result result=payService.selectPay();
        return result;
    }




    @GetMapping("/delFreePay")
    public Result delFreePay(Long id){
        Result result=payService.delFreePay(id);
        return result;
    }

    /**
     * @Description TODO
     * @param refundReqVo
     * @retuen result
     * 免密支付-退款
     * @date 2024/1/17 13:47
     * @auther 银狐先生
     */
    @PostMapping("/refund")
    public Result refundPay(FreeRefundReqVo refundReqVo){
        Result result=payService.refundPay(refundReqVo);
        return result;
    }

    /**
     * @Description TODO
     * @param PaymentNotification
     * @retuen Result
     * 支付结果通知[
     * @date 2024/2/22 9:33
     * @auther 银狐先生
     */
//    @PostMapping("/paynotification")
//    public Result payNotification(@RequestBody PaymentNotification paymentNotification) {
//        // 验证通知数据的签名（如果有的话）
//
//        // 处理接收到的支付结果
//        Result result=payService.processPaymentNotification(paymentNotification);
//
//        // 返回成功响应
//        return result;
//    }


    @GetMapping("getPaytypeById/{PayId}")
    public Result getPaytypeById(@PathVariable("PayId") Long PayId){
        Result result=payService.getPaytypeById(PayId);
        return result;
    }


}

